package com.liuzhilong.infrastructure.framework.algorithms.datastruct.tree;

public class TreeUtils {
    /**
     *
     */
    public static final class Arrays{
        /**
         * 父节点
         * @param i
         * @return
         */
        public static int parent(int i){
            return (int)Math.floor((i - 1)/2);

        }

        /**
         * 左孩子
         * @param i
         * @return
         */
        public static int left(int i){

           return  2 * i + 1;
        }

        /**
         * 右孩子
         * @param i
         * @return
         */
        public static int right(int i){
            return 2 * i + 2;
        }

        /**
         * 高度，根节点到叶子节点的最大步数
         * @param size
         * @return
         */
        public static final int height(int size){
            return (int) Math.floor(Math.log(size));
        }
    }
}
